﻿using Microsoft.Extensions.Logging;
using Serilog.Sinks.File;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace slwhTools.SLog
{
    public interface ISLogService<T>
    {
        void LogTrace(string message, params object[] args);
        void LogDebug(string message, params object[] args);
        void LogInformation(string message, params object[] args);
        void LogWarning(string message, params object[] args);
        void LogError(string message, params object[] args);
        void LogError(Exception exception, string message, params object[] args);
        void LogCritical(string message, params object[] args);
        void LogCritical(Exception exception, string message, params object[] args);

        // 结构化日志
        void LogWithData(string message, object data);

        // 日志上下文
        IDisposable BeginScope<TState>(TState state);
    }

    
}
